/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
	ListNode* ReverseList(ListNode* pHead) {
		if (!pHead)
			return nullptr;
		ListNode* cur = pHead;
		ListNode* pre = nullptr;
		while (cur)
		{
			ListNode* node = cur->next;
			cur->next = pre;
			pre = cur;
			cur = node;
		}
		return pre;
	}
};